This invention relates to expanding the number of encodings that can be used to represent parameters in a parameter field of messages transmitted between a first and a second communications device. More particularly, this invention relates to an indicator in the parameter field that signals that the message contains an expanded parameter encoding.
1. Problem
It is common for a first device and a second device, such as connected computer systems, to communicate with one another via a communications path. Most communications between devices involve transmitting message packets between the first and second devices. The message packets are streams of binary data that are divided up into different fields representing different pieces of information being transmitted in the message. In order to communicate, the devices must use the same protocol to generate and read the message packets. A protocol is a set of rules that defines the structure of the fields in message packets as well as the encodings of bits in a field.
Packets transmitted between the devices may contain a parameter which may be a command that a receiving device perform a specified function as well as the data required to perform the function or a specific type of data. A parameter is one data field in a message. Each parameter is divided into several sub-fields including a data length sub-field which indicates the length of the parameter in number of bits, a parameter identification field identifying the requested function, and a data field. A unique encoding in the parameter identification field is used to indicate each different parameter supported in a protocol. For example, the parameter identification field may be 8-bits long or one-byte long and each different 8-bit encoding represents a different command. A first parameter could be represented by the encoding 00000000 and a second parameter may be represented by the encoding 00001111. A device receiving a message would read the parameter identification field from a parameter in the message and determine the command to be performed.
It is a problem to add additional commands to a protocol system having a parameter identification field of a predetermined length. The predetermined length of encodings limits the number of encodings that can be used to represent parameters. For example, a one byte or 8-bit encoding field can only hold 256 different encodings. After the 256 different encodings are assigned to different parameters, no more parameters can be added to the protocol.
One method for adding additional parameters to a protocol would be to change the length of the identification field in a parameter to increase the number of available encodings available to represent parameters. However, lengthening of the identification sub-field is unacceptable. If the identification field is lengthened, each device that receives messages using the protocol must receive an updated version of the protocol to recognize the new length of the identification field in a parameter. Otherwise, systems with the older version of the protocol do not recognize the new encodings with the new length and are not able to correctly read a message transmitted in the new protocol. In many systems, expenses and logistics make it impossible to update the protocol used by every device in the system to communicate. A common example of a system that has the above problem is a telephone system. In telephone systems, controllers of switching systems communicate with one another via trunks connecting the switching systems. Message packets are transmitted between the switching systems to establish and maintain connections between calling stations. The message packets include a message type identification, a field indicating the number of bits in the packet and multiple parameters. Each parameter in a packet includes a length field giving the length of the parameter in bits, an identification field of one-byte containing the parameter encoding, and data needed to perform the operation represented by the parameter.
In a telephone system, it is common to reserve specific encodings for parameters representing common operations and data needed to provide telephone service. There remaining encodings can be used to represent other commands that are required to provide custom calling features. However, many telephone companies are expanding the telephone service provided to customers and require more parameter types than there are available encodings. It would be expensive and logistically impossible to install a new protocol in every switching system in a telephone network to add more parameters for the provision of expanded services. Therefore, there is a need to provide a protocol that has more encodings to represent new parameters and is compatible with the existing protocol to allow systems communicating with the older version of the protocol to remain in use.
2. Solution
The above and other problems are solved and an advance in the arts is made by the provision of a system for increasing the number of parameter identifications that can be encoded in a parameter of a message packet while maintaining existing encodings for existing parameters in a protocol. The system of present invention allows a device that communicates using an older version of a protocol to receive messages that contains parameters having expanded encoding fields. The device reads and processes parameters having encodings that represent commands in the older protocol. Parameters having an expanded parameter identification field of the new length are ignored by a device communicating with the older protocol. A device communicating using the new protocol reads and processes parameters having identification field that is either the length expected by the new or old protocol. This invention allows devices that operate using the new protocol to communicate with devices using the old protocol.
In a new protocol, the identification field of a parameter is one of two lengths. The first length of the identification field is the length of encodings in the old protocol. Encodings for parameters supported by the old protocol are written into the identification field of a parameter. If the parameter is a new parameter that is supported by the new protocol, the encoding is the second, expanded length. An encoding that does not represent a parameter in the old protocol is written into the identification field of a new parameter. The unused encoding indicates that an expanded encoding is written in an identification sub-field at the beginning of the data sub-field.
The new protocol is completely backwards compatible with the old protocol. The two protocols are compatible because none of the encodings for commands in the old protocol is changed in the new protocol. A device communicating using the old protocol can read a message packet transmitted by a device using the new protocol and is able to recognize all of the encodings for parameters from the old protocol. When a device communicating with the old protocol reads the unused encoding indicating an expanded encoding, the unused encoding is not recognized as a valid parameter identification in the old protocol and the device does not read the rest of the parameter. The use of the unused encoding ensures that a device communicating in the old protocol does not read the expanded identification field in the data field of a parameter. There is no chance of a device using the old protocol will misinterpret a new parameter encoding as an old parameter and data.
New parameter encodings are recognized by a device using the new protocol in the following manner. The device reads the unused encoding from the identification field of a parameter. The unused encoding signals that is an expanded encoding has been written into the data field. The device then reads the first n-bits of a data field which contain the new encoding for the new parameter. The addition of the new encodings only increases packet length by n bits per parameter containing a new command.